複数のGitHubアカウントを同一マシンで使い分ける方法(フォルダごとのリモート紐づけ設定)

複数のGitHubアカウントを同一マシンで使い分ける方法(フォルダごとのリモート紐づけ設定)

Clock Icon2024.08.25

こんちには。

データ事業本部 インテグレーション部 機械学習チームの中村( @nokomoro3 )です。

今回は小ネタで複数のGitHubアカウントがあって、それらを同一マシンからフォルダごとに別々のアカウントをリモートとして紐づける方法をご紹介します。

使用環境

使用環境は以下の通りです。

  • OS: Windows 10 (WSLではありません)
  • Git for Windows

なお、credential.helpermanager となっており、資格情報マネージャを使用する設定となっています。

git config --system credential.helper

# manager

事前準備

2つのGitHubアカウントにそれぞれPrivateなgitレポジトリを作成しておきます。

  • https://github.com/account-a/sample-repo-a
  • https://github.com/account-b/sample-repo-b

clone時にアカウントを明示的に指定する

account-a側

clone字に紐づける方法としては以下のように アカウント名@ を付けてcloneすればOKです。

git clone https://account-a@github.com/{ネームスペース名}/{レポジトリ名}

今回の例では account-a の中にサンプルレポジトリを作成しているため、以下のように account-a が2回登場する形となりますが、account-a に別のネームスペースへの権限がある場合は、下記に限らないです。

git clone https://account-a@github.com/account-a/sample-repo-a.git

ログインしたことがなければ以下のようなダイアログが表示されますので、ブラウザ側でログイン等を行います。

git-remote-set-url-for-multi-github-account_2024-08-25-19-48-26

このとき、既に account-b 側でGitHubにログイン済みのブラウザでリンクを開くと以下のようなエラーとなりうまく行きませんのでご注意ください。

Cloning into 'sample-repo-a'...
remote: Repository not found.
fatal: repository 'https://github.com/account-a/sample-repo-a.git/' not found

その場合は一旦ブラウザ側でGitHubからサインアウトするなどをお試しください。

account-b側

account-b側も特に変わらずで、以下のように アカウント名@ を付けてcloneすればOKです。

git clone https://account-b@github.com/account-b/sample-repo-b.git

後からアカウントに紐づけする

cloneした後に、後から特定のアカウントに紐づけしたい場合もあると思います。

git remote get-url origin

# https://github.com/account-a/sample-repo-a.git

その場合は set-urlアカウント名@ を付けた形に変更すればOKです。

git remote set-url origin https://account-a@github.com/account-a/sample-repo-a.git

まとめ

いかがでしたでしょうか。本記事がgit使用時のご参考になれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.